package com.xsf.jieyou.provider.api;

import com.xsf.jieyou.provider.domain.TbUser;

/**
 * 用户 服务接口类。
 * <p>
 * Description:Dubbo API
 * </p>
 *
 * @author xsf
 * @version v1.0.0
 * @date 2019/11/15 0015
 **/
public interface ProviderTbUserService {
    /**
     * 新增 用户。
     *
     * @param tbUser 用户对象
     * @return 如果返回值大于 0，则表示新增用户成功
     */
    int insert(TbUser tbUser);

    /**
     * 通过用户名获取用户对象
     *
     * @param username 用户名
     * @return 用户对象 {@link TbUser}
     */
    TbUser get(String username);

    /**
     * 通过 用户对象 获取 完整的用户对象
     *
     * @param tbUser {@link TbUser}
     * @return 用户对象 {@link TbUser}
     */
    TbUser get(TbUser tbUser);

    /**
     * 通过 用户ID 获取 用户对象
     *
     * @param userId {@link Long} 用户ID
     * @return 用户对象 {@link TbUser}
     */
    TbUser get(Long userId);

    /**
     * 更新用户
     *
     * @param tbUser {@link TbUser}
     * @return 用户对象 {@link TbUser}
     */
    int update(TbUser tbUser);

    /**
     * 校验用户名唯一性
     *
     * @param username 用户名
     * @return 用户对象 {@link TbUser}
     */
    int validateUsername(String username);

    /**
     * 校验手机号唯一性
     *
     * @param phone 手机号
     * @return 用户对象 {@link TbUser}
     */
    int validatePhoneNum(String phone);
}
